1. Field
Updating and recovering system firmware.
2. Background
During initialization and/or use of electronic devices, such as computing systems, firmware “program” is often used to detect, test, initialize, and monitor the device or system hardware. For example, when a personal computer (PC) is turned on, typically a basic input/output system (BIOS) program (e.g. firmware) which is software stored in or programmed into a read-only memory (ROM) chip on the PC motherboard, commonly referred to as the BIOS chip, is run. Upon being run the BIOS instantly identifies all of the onboard devices (e.g. such as the processor, memory, video card, etc.) and then runs the Power-on self-test (POST) to determine whether or not each device is working properly. If all of the devices pass the POST test then the BIOS initializes each device, detects hard drives, compact disks-ROM (CD-ROM) drives, and floppy drives. Then the BIOS searches the first boot device (normally the hard drive or floppy drive) for files necessary to load the operating system software. The BIOS may handle low-level input/output (I/O) to peripheral controllers such as the keyboard and display controllers. Moreover, the BIOS will detect, test, initialize, and monitor the system hardware until the operating system takes over. Then, the BIOS may pass control of the system to the operating system software. If any device fails the POST, then an error message will be displayed on the screen or a series of “beeps” will be played through the PC speaker to indicate that a problem exists. The sequence of beeps (beep code) can be used to identify the type of problem that exists.
However, the BIOS or firmware is typically “burned” into one portion of the ROM chip and written or programmed into a second portion of the ROM chip. Although the “burned” portion may be “flash” erased by hardware mechanisms (e.g., such as by ultraviolet light irradiation), the second portion may be erased or written over by software mechanisms. As a result, it is possible for the BIOS or firmware to become corrupted, inaccurate, or undesirably altered by a “virus”, “worm”, or “hacker.” Moreover, it is possible that the user of the computing system may alter the BIOS, unintentionally, to an undesirable configuration. Thus, it is important to be able to recover and update the BIOS or firmware to insure that is accurate.